package scanner;

import exceptions.LexicalException;
import util.Token;

import java.io.IOException;

/**
 * 词法分析器
 */
public interface MyScanner {
    /**
     * @return 当前所在行
     */
    int getLine();

    /**
     * @return 当前所在列
     */
    int getColumn();

    /**
     * @return 是否还有下一个 token
     */
    boolean hasNext();

    /**
     * @return 返回下一个 token
     * @throws LexicalException 词法错误
     * @throws IOException      io错误
     */
    Token getNext() throws LexicalException, IOException;
}
